package com.zh.system.service;

import com.zh.system.domain.dto.ConfirmMessageDto;
import com.zh.system.domain.dto.PageMessageDto;
import com.zh.system.domain.entity.SysMsgFrom;
import com.zh.system.domain.vo.MessageVo;
import com.zh.web.base.PageApiResult;
import com.zh.web.domain.system.dto.MessageDto;

import java.util.List;

public interface SysMessageService {
    /**
     * 发送消息
     *
     * @param messageDto
     * @return
     */
    String sendMessage(MessageDto messageDto);

    /**
     * 确认消息
     *
     * @param confirmMessageDto
     */
    void confirmMessage(ConfirmMessageDto confirmMessageDto);

    /**
     * 分页查询消息
     *
     * @param pageMessageDto
     * @return
     */
    PageApiResult<SysMsgFrom> page(PageMessageDto pageMessageDto);

    /**
     * id 查询消息
     *
     * @param id
     * @return
     */
    SysMsgFrom getMessageById(Long id);

    /**
     * 用户id查消息
     *
     * @param id
     * @return
     */
    List<MessageVo> listMessage(Long id, String type);

    /**
     * 查询未读消息数
     *
     * @param id
     * @param type
     * @return
     */
    Integer countUnConfirmedMessage(Long id, String type);

    /**
     * 确认type 下的所有消息
     *
     * @param id
     * @param type
     */
    void confirmMessageByType(Long id, String type);
}
